package com.softoa.service;

import com.softoa.pojo.Department;
import com.softoa.pojo.DepartmentParam;
import com.softoa.pojo.User;

import java.util.List;

/**
 * @author LinKun
 * @date 2022-6-22 0:13
 */
public interface IDepartmentService {
    /**
     * 不传参数，直接返回全部部门
     *
     * @return 部门列表
     */
    java.util.List<Department> departmentList();

    /**
     * 新增部门。传入一个部门对象，保存在数据库，返回整型
     *
     * @param department 添加的部门对象
     * @return 返回是否添加成功
     */
    boolean departmentInsert(Department department);

    /**
     * 更新部门对象
     *
     * @param departmentParam 需要更新的部门对象，传递了需要更新的参数
     * @return 返回是否更新成功
     */
    boolean departmentUpdate(DepartmentParam departmentParam);

    /**
     * 展示该部门下所有的员工
     *
     * @param deptId 需要查询的部门的Id
     * @return 返回一个部门对象
     */
    java.util.List<User> showUsers(String deptId);

    /**
     * 根据Id删除部门
     *
     * @param deptId 被删除部门的ID
     * @return 返回布尔值
     */
    boolean deleteOne(String deptId);

    /**
     * 删除数组中的部门对象
     *
     * @param ids 数组
     * @return 返回布尔值
     */
    boolean deleteDepts(int[] ids);

    /**
     * 模糊查询，通过名字查询部门
     * @param deptName 需要查询的部门名字
     * @return 查询到的部门对象列表
     */
    List<Department> departmentListMultiple(String deptName);
}
